package demo01;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/*
 *  Map集合的第一种遍历方式：通过键找值
 *  Map集合中的方法：
 *      public Set<K> keySet()：获取Map集合中所有的键，存储到Set集合中
 *  实现步骤：
 *      1. 使用Map集合中的方法keySet()，把Map集合所有的key取出，存储到一个Set集合中
 *      2. 遍历set集合，获取Map集合中的每一个key
 *      3. 通过Map集合中的方法get(key)，通过key找到value
 */
public class Demo02KeySet {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("土司鸡", "土蛋蛋");
        map.put("老虎", "虎蛋蛋");
        map.put("提莫", "提蛋蛋");

        // 1. 使用Map集合中的方法keySet()，把Map集合所有的key取出，存储到一个Set集合中
        Set<String> set = map.keySet();

        // 2. 遍历set集合，获取Map集合中的每一个key
        // 使用迭代器遍历set集合
        Iterator<String> iterator = set.iterator();
        while (iterator.hasNext()) {
            String string = iterator.next();
            // 3. 通过Map集合中的方法get(key)，通过key找到value
            System.out.println(string + "=" + map.get(string)); // 提莫=提蛋蛋 土司鸡=土蛋蛋 老虎=虎蛋蛋
        }

        // 使用增强for遍历set集合
        for (String string : set) { 
            // 3. 通过Map集合中的方法get(key)，通过key找到value
            System.out.println(string + "=" + map.get(string)); // 提莫=提蛋蛋 土司鸡=土蛋蛋 老虎=虎蛋蛋
        }

        // 增强for简化版本
        for (String string : map.keySet()) { // map.keySet()返回了键的集合，直接放入增强for循环中遍历使用
            System.out.println(string + "=" + map.get(string)); // 提莫=提蛋蛋 土司鸡=土蛋蛋 老虎=虎蛋蛋
        }
    }
}